﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security;
using ITA;


namespace ITA
{

    /// <summary>
    ///  Példány gyár létrehozása. Ez az osztály hivatott az Interfészek generálására. Rendelkezik egy Keszit metódussal.
    /// </summary>
    public static class AdatHozzaFeresKeszito
    {

        /// <summary>
        /// A metódus paraméter alapján megvizsgálja, hogy fájl alapú XmlMentést vagy a MemAlapu mentést használja
        /// A metódus rendeltetés szerinti használatához szükséges egy környezeti változó beállítása, melynek neve MentésFajta.

        /// </summary>
        /// <returns>A környezeti változóba írt string alapján visszatér valamely mentés típussal.</returns>
        /// <exception cref="ITA.ItaAdatEleresException">Amennyiben nincs meg a szükséges jogosultsági szint, akkor ez az exception meg fog dobódni.</exception>
        public static IAdatkezeles Keszit()
        {


            try
            {

                string kornyezetiValtozoErteke = Environment.GetEnvironmentVariable("MentesFajta");
                IAdatkezeles result = null;
                if (kornyezetiValtozoErteke == "MemAlapu")
                {
                    result = new MemMentes();
                }
                else
                {
                    result = new XmlMentes();
                }
                return result;


            }
            catch (SecurityException e)
            {
                throw new ItaAdatEleresException("Sajnos nem rendelkezik jogosultsággal a változó használatához", e);
            }
        }
    }


}
